package com.ztrue.framework.core.command;

import com.ztrue.framework.core.domain.IAggregateRoot;

/**
 * 表示一个命令处理程序处理命令时的命令上下文
 *
 * @author zhangw
 * @date 2016/10/27 18:45
 * @version: 1.0
 */
public interface ICommandContext {
    /**
     * 添加一个聚合根到当前命令上下文
     * @param aggregateRoot
     */
    void add(IAggregateRoot aggregateRoot);

    /**
     * 根据聚合根ID获取一个聚合根
     * @param id
     * @param <T>
     * @return
     */
    <T extends IAggregateRoot> T get(String id, Class<T> cls);
}
